Angular 原理图中的 branchAndMerge 函数有什么作用?

What does branchAndMerge function in Angular schematics do?

我正在试验 Angular 原理图,并在多个地方遇到了函数 branchAndMerge()。然而,没有人解释它的作用。

看过的地方:

澄清它与 merge/mergeWith 的不同之处,以及如何正确使用它,我们将不胜感激。

P.S:Merge在@angular-devkit/schematics解释如下:

Merge the input tree with the other Tree.

顺便说一句,我假设 merge() 现在是 mergeWith,尽管我对此不是 100% 确定。

代码示例

const rule = 
    // Creates a new rule that is a concatenation of other rules.
    chain([
      // Everyone uses it, but no one explains what it does...
      branchAndMerge(
        chain([
        // Merges the project tree with the virtual tree
        mergeWith(virtualTree)
      ]))
    ]);

下面的video给出了我迄今为止听到的最好的解释:

Branch from current tree, and the tree is a virtual file system based off of your current directory

如果仔细研究 code in the repo,就会发现情况确实如此。我想这样做的好处是出于性能原因,它允许修改 key/values 而不是实际的硬盘。此外,我想它也简化了过程,因为它使位置无关紧要,这会使原理图的过程大大复杂化。